package org.jpoligonos.controller;

import org.jpoligonos.beans.Proyecto;
import java.io.Serializable;
import java.util.List;
import java.util.ArrayList;
import java.util.*;
import java.util.HashMap;
import java.util.Map;
import org.jpoligonos.persistencia.ProyectoPersistencia;
import org.jpoligonos.generales.Mensajeria;


/**
*
*  @author
*/

public class ProyectoController implements Serializable {
private static final long serialVersionUID = 1L;
private boolean withRelation= true;
public static Exception excepcion;



private List<Proyecto> proyectolist;

private Proyecto selectedproyecto;



public boolean isWithRelation() {
    return withRelation;
}
public  void setWithRelation(boolean withRelation) {
    this.withRelation = withRelation;
}
public ProyectoController(){
}

public Proyecto getSelectedProyecto() {
 return selectedproyecto;
}

 public void setSelectedProyecto(Proyecto selectedproyecto) {
 this.selectedproyecto = selectedproyecto;
}


public List<Proyecto> getProyectolist() {
return proyectolist;
}

 public void setProyectolist(List<Proyecto> proyectolist) {
this.proyectolist = proyectolist;
}
/*
*  getMensaje()
*   devuelve el mensaje encontrado...
*/
public String getMensaje() {
   String lexcepcion = excepcion.toString();
   if (lexcepcion.indexOf(":") != -1) {
       lexcepcion = lexcepcion.substring(lexcepcion.indexOf(":") + 1);
   }
  return lexcepcion;
}


/**
*
* Insert()
*/

public boolean Insert (Proyecto proyecto) {
try{
java.util.ResourceBundle bundle = java.util.ResourceBundle.getBundle("org/jpoligonos/properties/mensajes");
   if (Validate(proyecto)) {
     if (findByPrimaryKey(proyecto)==null) {
         if (!ProyectoPersistencia.Insert(proyecto)) {
                 excepcion = ProyectoPersistencia.excepcion;
          }
          else{
             return true;
           }
       }else{
               excepcion=new Exception(bundle.getString("msg.recordexists"));
            return false;
       }
    }
  }catch(Exception ex){
     Mensajeria.MensajeError( ex ,"Insert()");
  }
  return false;
}


/**
*
* Update()
*/

public boolean Update (Proyecto proyecto) {
try{
java.util.ResourceBundle bundle = java.util.ResourceBundle.getBundle("org/jpoligonos/properties/mensajes");
   if (Validate(proyecto)) {
 if (ProyectoPersistencia.Exists(proyecto)) {
     if (!ProyectoPersistencia.Update(proyecto)) {
                excepcion = ProyectoPersistencia.excepcion;
     }
     else{
            return true;
     }
   }else{
               excepcion=new Exception(bundle.getString("msg.nofoundprimarykey"));
            return false;
     }
  }
  }catch(Exception ex){
     Mensajeria.MensajeError( ex ,"Update()");
  }
  return false;
}


/**
*
* Update(String sqlupdate)
*/

public boolean Update(String sqlupdate) {
try{
     if (!ProyectoPersistencia.Update(sqlupdate)) {
                excepcion = ProyectoPersistencia.excepcion;
     }
     else{
            return true;
     }
  }catch(Exception ex){
     Mensajeria.MensajeError( ex ,"Update()");
  }
  return false;
}


/**
*
* UpdatePrimaryKey()
*/

public boolean UpdatePrimaryKey (Proyecto proyecto_old , Proyecto proyecto) {
try{
java.util.ResourceBundle bundle = java.util.ResourceBundle.getBundle("org/jpoligonos/properties/mensajes");
   if (Validate(proyecto_old)) {
 if (ProyectoPersistencia.Exists(proyecto_old)) {
     if (!ProyectoPersistencia.UpdatePrimaryKey(proyecto_old,proyecto)) {
                excepcion = ProyectoPersistencia.excepcion;
     }
     else{
            return true;
     }
   }else{
               excepcion=new Exception(bundle.getString("msg.nofoundprimarykey"));
            return false;
     }
  }
  }catch(Exception ex){
     Mensajeria.MensajeError( ex ,"UpdatePrimaryKey()");
  }
  return false;
}


/**
*
* Delete()
*/

public boolean Delete (Proyecto proyecto) {
try{
java.util.ResourceBundle bundle = java.util.ResourceBundle.getBundle("org/jpoligonos/properties/mensajes");
 if (findByPrimaryKey(proyecto)!=null) {
     if (!ProyectoPersistencia.Delete(proyecto)) {
                excepcion = ProyectoPersistencia.excepcion;
     }else{
            return true;
           }
   }else{
            excepcion=new Exception(bundle.getString("msg.nofoundprimarykey"));
            return false;
     }
  }catch(Exception ex){
     Mensajeria.MensajeError( ex ,"Delete()");
  }
  return false;
}


/**
*
* Delete(String sqldelete)
*/

public boolean Delete(String sqldelete) {
try{
     if (!ProyectoPersistencia.Delete(sqldelete)) {
                excepcion = ProyectoPersistencia.excepcion;
     }else{
            return true;
           }
  }catch(Exception ex){
     Mensajeria.MensajeError( ex ,"Delete()");
  }
  return false;
}


/**
*
* DeleteAll()
*/

public boolean DeleteAll() {
try{
     if (!ProyectoPersistencia.DeleteAll()) {
                excepcion = ProyectoPersistencia.excepcion;
     }
     else{
            return true;
     }
  }catch(Exception ex){
     Mensajeria.MensajeError( ex ,"DeleteAll()");
  }
  return false;
}


/**
*
* Exists()
*/



public boolean Exists(Proyecto proyecto) {
try{
   return ProyectoPersistencia.Exists(proyecto);
  }catch(Exception ex){
     Mensajeria.MensajeError( ex ,"Exists()");
  }
 return false;
}


/**
*
* findPrimaryKey()
*/



public Proyecto findByPrimaryKey(Proyecto proyecto) {
try{
    this.selectedproyecto = ProyectoPersistencia.findByPrimaryKey(proyecto);
    return selectedproyecto;
  }catch(Exception ex){
     Mensajeria.MensajeError( ex ,"findByPrimaryKey()");
  }
 return null;
}


/**
*
* findByIdproyecto()
*/

public boolean findByIdproyecto(Proyecto proyecto) {
  try{
     if(proyectolist != null){
        proyectolist.removeAll(proyectolist);
     }
     proyectolist = ProyectoPersistencia.findByIdproyecto(proyecto,withRelation) ;
     if (proyectolist== null) {
                excepcion = ProyectoPersistencia.excepcion;
       }
       else{
            return true;
            }
    }catch(Exception ex){
     Mensajeria.MensajeError( ex ,"findByIdproyecto()");
  }
  return false;
  }


/**
*
* findByProyecto()
*/

public boolean findByProyecto(Proyecto proyecto) {
  try{
     if(proyectolist != null){
        proyectolist.removeAll(proyectolist);
     }
     proyectolist = ProyectoPersistencia.findByProyecto(proyecto,withRelation) ;
     if (proyectolist== null) {
                excepcion = ProyectoPersistencia.excepcion;
       }
       else{
            return true;
            }
    }catch(Exception ex){
     Mensajeria.MensajeError( ex ,"findByProyecto()");
  }
  return false;
  }


/**
*
* findByProvincia()
*/

public boolean findByProvincia(Proyecto proyecto) {
  try{
     if(proyectolist != null){
        proyectolist.removeAll(proyectolist);
     }
     proyectolist = ProyectoPersistencia.findByProvincia(proyecto,withRelation) ;
     if (proyectolist== null) {
                excepcion = ProyectoPersistencia.excepcion;
       }
       else{
            return true;
            }
    }catch(Exception ex){
     Mensajeria.MensajeError( ex ,"findByProvincia()");
  }
  return false;
  }


/**
*
* findByDistrito()
*/

public boolean findByDistrito(Proyecto proyecto) {
  try{
     if(proyectolist != null){
        proyectolist.removeAll(proyectolist);
     }
     proyectolist = ProyectoPersistencia.findByDistrito(proyecto,withRelation) ;
     if (proyectolist== null) {
                excepcion = ProyectoPersistencia.excepcion;
       }
       else{
            return true;
            }
    }catch(Exception ex){
     Mensajeria.MensajeError( ex ,"findByDistrito()");
  }
  return false;
  }


/**
*
* findByCorregimiento()
*/

public boolean findByCorregimiento(Proyecto proyecto) {
  try{
     if(proyectolist != null){
        proyectolist.removeAll(proyectolist);
     }
     proyectolist = ProyectoPersistencia.findByCorregimiento(proyecto,withRelation) ;
     if (proyectolist== null) {
                excepcion = ProyectoPersistencia.excepcion;
       }
       else{
            return true;
            }
    }catch(Exception ex){
     Mensajeria.MensajeError( ex ,"findByCorregimiento()");
  }
  return false;
  }


/**
*
* findByCalculado()
*/

public boolean findByCalculado(Proyecto proyecto) {
  try{
     if(proyectolist != null){
        proyectolist.removeAll(proyectolist);
     }
     proyectolist = ProyectoPersistencia.findByCalculado(proyecto,withRelation) ;
     if (proyectolist== null) {
                excepcion = ProyectoPersistencia.excepcion;
       }
       else{
            return true;
            }
    }catch(Exception ex){
     Mensajeria.MensajeError( ex ,"findByCalculado()");
  }
  return false;
  }


/**
*
* findByFecha()
*/

public boolean findByFecha(Proyecto proyecto) {
  try{
     if(proyectolist != null){
        proyectolist.removeAll(proyectolist);
     }
     proyectolist = ProyectoPersistencia.findByFecha(proyecto,withRelation) ;
     if (proyectolist== null) {
                excepcion = ProyectoPersistencia.excepcion;
       }
       else{
            return true;
            }
    }catch(Exception ex){
     Mensajeria.MensajeError( ex ,"findByFecha()");
  }
  return false;
  }


/**
*
* findByRevisado()
*/

public boolean findByRevisado(Proyecto proyecto) {
  try{
     if(proyectolist != null){
        proyectolist.removeAll(proyectolist);
     }
     proyectolist = ProyectoPersistencia.findByRevisado(proyecto,withRelation) ;
     if (proyectolist== null) {
                excepcion = ProyectoPersistencia.excepcion;
       }
       else{
            return true;
            }
    }catch(Exception ex){
     Mensajeria.MensajeError( ex ,"findByRevisado()");
  }
  return false;
  }


/**
*
* locateByParameters()
*/

public boolean locateByParameters(Map parametros) {
  try{
     if(proyectolist != null){
        proyectolist.removeAll(proyectolist);
     }
     proyectolist = ProyectoPersistencia.locateByParameters(parametros,withRelation);
     if (proyectolist== null) {
                excepcion = ProyectoPersistencia.excepcion;
       }
       else{
            return true;
            }
    }catch(Exception ex){
     Mensajeria.MensajeError( ex ,"locateByParameters()");
  }
  return false;
}


/**
*
* Func(String funcion, String campo)
*/

public Double Func(String funcion, String campo) {
  try{
     return ProyectoPersistencia.Func(funcion,campo);
    }catch(Exception ex){
     Mensajeria.MensajeError( ex ,"Func()");
  }
  return 0.0;
}


/**
*
* Double Func(String funcion, String campo, String where)
*/

public Double Func(String funcion, String campo,String where) {
  try{
     return ProyectoPersistencia.Func(funcion,campo,where);
    }catch(Exception ex){
     Mensajeria.MensajeError( ex ,"Func()");
  }
  return 0.0;
}


/**
*
* Count()
*/

public Integer Count() {
  try{
     int x =ProyectoPersistencia.Count();
    return x;
    }catch(Exception ex){
     Mensajeria.MensajeError( ex ,"Count()");
  }
 return 0;
}


/**
*
* Count(String sql)
*/

public Integer Count(String sqlquery) {
  try{
     int x =ProyectoPersistencia.Count(sqlquery);
    return x;
    }catch(Exception ex){
     Mensajeria.MensajeError( ex ,"Count()");
  }
 return 0;
}


/**
*
* Query()
*/

public boolean Query(String query) {
  try{
     if(proyectolist != null){
        proyectolist.removeAll(proyectolist);
     }
     proyectolist = ProyectoPersistencia.Query(query,withRelation);
     if (proyectolist== null) {
                excepcion = ProyectoPersistencia.excepcion;
       }
       else{
            return true;
            }
    }catch(Exception ex){
     Mensajeria.MensajeError( ex ,"Query()");
  }
  return false;
}


/**
*
* SelectAll()
*/



public boolean SelectAll() {
  try{
     if(proyectolist != null){
        proyectolist.removeAll(proyectolist);
     }
     Map<String, String> parametros = new HashMap<String, String>();
     proyectolist = ProyectoPersistencia.getListRecords(parametros,withRelation);
     if (proyectolist== null) {
                excepcion = ProyectoPersistencia.excepcion;
       }
       else{
            return true;
            }
    }catch(Exception ex){
     Mensajeria.MensajeError( ex ,"SelectAll()");
  }
            return false;
}


public boolean Validate(Proyecto proyecto) {
 try{
java.util.ResourceBundle bundle = java.util.ResourceBundle.getBundle("org/jpoligonos/properties/mensajes");

if (proyecto.getIdproyecto() == null || proyecto.getIdproyecto().equals("")){
   excepcion=new Exception(bundle.getString("idproyecto")  + "  " + bundle.getString("msg.nonulo"));
  return false;
}
if (proyecto.getProyecto() == null || proyecto.getProyecto().equals("")){
   excepcion=new Exception(bundle.getString("proyecto")  + "  " + bundle.getString("msg.nonulo"));
  return false;
}
if (proyecto.getProvincia() == null || proyecto.getProvincia().equals("")){
   excepcion=new Exception(bundle.getString("provincia")  + "  " + bundle.getString("msg.nonulo"));
  return false;
}
if (proyecto.getDistrito() == null || proyecto.getDistrito().equals("")){
   excepcion=new Exception(bundle.getString("distrito")  + "  " + bundle.getString("msg.nonulo"));
  return false;
}
if (proyecto.getCorregimiento() == null || proyecto.getCorregimiento().equals("")){
   excepcion=new Exception(bundle.getString("corregimiento")  + "  " + bundle.getString("msg.nonulo"));
  return false;
}
if (proyecto.getCalculado() == null || proyecto.getCalculado().equals("")){
   excepcion=new Exception(bundle.getString("calculado")  + "  " + bundle.getString("msg.nonulo"));
  return false;
}
if (proyecto.getFecha() == null || proyecto.getFecha().equals("")){
   excepcion=new Exception(bundle.getString("fecha")  + "  " + bundle.getString("msg.nonulo"));
  return false;
}
if (proyecto.getRevisado() == null || proyecto.getRevisado().equals("")){
   excepcion=new Exception(bundle.getString("revisado")  + "  " + bundle.getString("msg.nonulo"));
  return false;
}
  return true;
 }catch(Exception ex){
   Mensajeria.MensajeError(ex, "Validate()");
  return false;

  }
}


}
